<?php
//App::import('Model', 'Usuario');

class UsuarioTestCase extends CakeTestCase {
	var $fixtures = array('app.usuario', 'app.grupo');

	function startTest() {
		$this -> Usuario =& ClassRegistry::init('Usuario');
	}
	
	function endTest() {
		ClassRegistry::flush();
	}

	/**
	 * testAgreado
	 * Hace una prueba con todos los datos correctos.
	 * Debería crearlo sin problemas.
	 * @author Ale.
	 */
	function testAgregado() {
		//$this -> Usuario -> create();	
		$data = array('Usuario' => array('nombre_usuario' => 'pedroramirez', 'contrasenia' => 'diciembre$11243', 'contrasenia_confirmar' => 'diciembre$11243', 'grupo_id' => '1'));

		$resultado = $this -> Usuario -> save($data);

		$this -> assertTrue($resultado);
	}
	
		/**
	 * testContraseniasDistintas
	 * Con contraseñas distintas debería fallar.
	 * @author Ale.
	 */
	function testContraseniasDistintas() {
		//$this -> Usuario -> create();
		$data = array('Usuario' => array('nombre_usuario' => 'pdsfaedro44', 'contrasenia' => 'diciembre11243', 'contrasenia_confirmar' => 'otroDiciembre', 'grupo_id' => '1'));

		$resultado = $this -> Usuario -> save($data);

		$this -> assertFalse($resultado);
	}
	
	/**
	 * testContraseniasVacias
	 * Hace una prueba con todos los datos correctos.
	 * Debería crearlo sin problemas.
	 * @author Ale.
	 */
	function testContraseniasVacias() {
		//$this -> Usuario -> create();	
		$data = array('Usuario' => array('nombre_usuario' => 'pedro44', 'contrasenia' => '', 'contrasenia_confirmar' => '', 'grupo_id' => '1'));

		$resultado = $this -> Usuario -> save($data);

		$this -> assertFalse($resultado);
	}

	/**
	 * testNombreUsuarioFalta
	 * Debería fallar si falta el nombre de usuario porque es un campo requerido para crear el usuario.
	 * @author Ale.
	 */
	function testNombreUsuarioFalta() {
		//$this -> Usuario -> create();	
		$data = array('Usuario' => array('contrasenia' => 'diciembre11243', 'contrasenia_confirmar' => 'diciembre11243', 'grupo_id' => '1'));

		$resultado = $this -> Usuario -> save($data);
		
		$this -> assertFalse($resultado);
	}
	
	/**
	 * testNombreUsuarioVacio
	 * Debería fallar si el nombre de usuario es vacío porque es un campo requerido para crear el usuario.
	 * @author Ale.
	 */
	function testNombreUsuarioVacio() {
		//$this -> Usuario -> create();	
		$data = array('Usuario' => array('nombre_usuario' => '', 'contrasenia' => 'diciembre11243', 'contrasenia_confirmar' => 'diciembre11243', 'grupo_id' => '1'));

		$resultado = $this -> Usuario -> save($data);
		
		$this -> assertFalse($resultado);
	}
	
	/**
	 * testNombreUsuarioCorto
	 * Debería fallar si el nombre de usuario es menor a 6 porque es un campo requerido para crear el usuario.
	 * @author Ale.
	 */
	function testNombreUsuarioCorto() {
		//$this -> Usuario -> create();	
		$data = array('Usuario' => array('nombre_usuario' => 'juana', 'contrasenia' => 'diciembre11243', 'contrasenia_confirmar' => 'diciembre11243', 'grupo_id' => '1'));

		$resultado = $this -> Usuario -> save($data);
		
		$this -> assertFalse($resultado);
	}
	
	/**
	 * testNombreUsuarioNoCorto
	 * No debería fallar si el nombre de usuario es igual a 6 porque es un campo requerido para crear el usuario.
	 * @author Ale.
	 */
	function testNombreUsuarioNoCorto() {
		//$this -> Usuario -> create();	
		$data = array('Usuario' => array('nombre_usuario' => 'juanes', 'contrasenia' => 'diciembre11243', 'contrasenia_confirmar' => 'diciembre11243', 'grupo_id' => '1'));

		$resultado = $this -> Usuario -> save($data);
		
		$this -> assertTrue($resultado);
	}
	
	/**
	 * testNombreUsuarioLargo
	 * Debería fallar si el nombre de usuario es mayor a 25 porque es un campo requerido para crear el usuario.
	 * @author Ale.
	 */
	function testNombreUsuarioLargo() {
		//$this -> Usuario -> create();	
		$data = array('Usuario' => array('nombre_usuario' => 'EsteNombreEsDemasiadoLargo', 'contrasenia' => 'diciembre11243', 'contrasenia_confirmar' => 'diciembre11243', 'grupo_id' => '1'));

		$resultado = $this -> Usuario -> save($data);
		
		$this -> assertFalse($resultado);
	}
	
	/**
	 * testNombreUsuarioNoLargo
	 * No debería fallar si el nombre de usuario es igual a 25.
	 * @author Ale.
	 */
	function testNombreUsuarioNoLargo() {
		//$this -> Usuario -> create();	
		$data = array('Usuario' => array('nombre_usuario' => 'nombreNoEsDemasiadoLargo', 'contrasenia' => 'diciembre11243', 'contrasenia_confirmar' => 'diciembre11243', 'grupo_id' => '1'));

		$resultado = $this -> Usuario -> save($data);
		
		$this -> assertTrue($resultado);
	}
	
		/**
	 * testNombreUsuarioCaracteresInválidos
	 * No debería fallar si el nombre de usuario es igual a 25.
	 * @author Ale.
	 */
	function testNombreUsuarioCaracteresInválidos() {
		//$this -> Usuario -> create();	
		$data = array('Usuario' => array('nombre_usuario' => 'nombre_no_valido', 'contrasenia' => 'diciembre11243', 'contrasenia_confirmar' => 'diciembre11243', 'grupo_id' => '1'));

		$resultado = $this -> Usuario -> save($data);
		
		$this -> assertFalse($resultado);
	}

	/**
	 * testSinContrasenia
	 * Debería fallar si falta la contraseña porque es un campo requerido para crear el usuario.
	 * @author Ale.
	 */
	function testSinContrasenia() {
		//$this -> Usuario -> create();
		$data = array('Usuario' => array('nombre_usuario' => 'pedro44', 'contrasenia_confirmar' => 'diciembre11243', 'grupo_id' => '1'));

		$resultado = $this -> Usuario -> save($data);

		$this -> assertFalse($resultado);
	}

	/**
	 * testSinConfirmacionContrasenia
	 * Debería fallar si falta la confirmación de la contraseña porque es un campo requerido para crear el usuario.
	 * @author Ale.
	 */
	function testSinConfirmacionContrasenia() {
		//$this -> Usuario -> create();
		$data = array('Usuario' => array('nombre_usuario' => 'pedro44', 'contrasenia' => 'diciembre11243', 'grupo_id' => '1'));

		$resultado = $this -> Usuario -> save($data);

 		//Debugger::dump(print_r($data));

		$this -> assertFalse($resultado);
	}

	/**
	 * testGrupoId
	 * Debería fallar si falta el grupo al que debe pertenecer el nuevo usuario porque es un campo requerido para crear el usuario.
	 * @author Ale.
	 */
	function testGrupoId() {
		//$this -> Usuario2 = &ClassRegistry::init('Usuario');
		$data = array('Usuario' => array('nombre_usuario' => 'pedro44', 'contrasenia' => 'diciembre11243', 'contrasenia_confirmar' => 'diciembre11243'));

		$resultado = $this -> Usuario -> save($data);

		$this -> assertFalse($resultado);
	}

}
?>